package edu.bbu.cshu.wmpc.dao;

import edu.bbu.cshu.wmpc.dao.jdbc.JdbcDAOFactory;
/**
 * <ul>
 * <li><b><i>DAOFactory</i></b></li>
 * <li style="list-style: none;"></li>
 * <li style="list-style: none;">
 * Abstract class that is to be extended by any concrete data access object factory.
 * 
 * @author WMPC team
 * </li>
 * </ul>
 */ 
public abstract class DAOFactory {
	/**
	 * <ul style="margin-top: 24px;">
	 * <li><b><i>getInstance</i></b></li>
	 * <li style="list-style: none;"></li>
	 * <li style="list-style: none;">
	 * <p style="margin-left: 7px;">{@code public static} {@link DAOFactory} {@code getInstance()}</p>
	 * <br>	
	 * Instantiates and return that instance of a concrete factory that implements {@code DAOFactory}.
	 * 
	 * @return an instance of a factory that extends {@code DAOFactory}
	 * </li>
	 * </ul>
	 */
    public static DAOFactory getInstance() {
        return new JdbcDAOFactory();
    }
    /**
	 * <ul style="margin-top: 24px;">
	 * <li><b><i>getCodeDAO</i></b></li>
	 * <li style="list-style: none;"></li>
	 * <li style="list-style: none;">
	 * <p style="margin-left: 7px;">{@code public abstract} {@link CodeDAO} {@code getCodeDAO()}</p>
	 * <br>	
	 * Instantiates and return that instance of a concrete class that implements {@code CodeDAO}.
	 * 
	 * @return instance of a {@code class} that implements {@code CodeDAO}
	 * </li>
	 * </ul>
	 */
    public abstract CodeDAO getCodeDAO();
}
